====== MIDIBox SpeakJet K64 Modul ======

{{speakjet_k64:speakjet1s.jpg}}







===== Introduction =====

K64 Modul is seperated in 2 Applications - K64 and K2 SpeakJet Application:

K64 Application is a classic keyboard-controller to play MIDI Notes from retro C64 keyboard for seperate UPPER- and LOWER-Keyfield Input. You can control MIDI events for specific channels too. So you can use it as mobile input device for external syntheziser or to use it as input keys for SEQV3 application. With an additonal seperate SpeakJet Modul you are able to control parameters for SpeakJet and SEQV3 at same time. 

If a SpeakJetBoard is installed you can use the advanced functionalities of "Synth" and "Text To Speech" Mode. 

In "Synth" Mode you are able to setup and tune directly 5 OSCs of SpeakJet. The tuned chord can be played by notes. Elsewhere you can choose between Poly and OSCSynthese Mode. CC Parameters of K64 can be controlled by incomming Messages too.

In "TextToSpeech" Mode you are able to write down text phrases, which are processes directly in realtime by setup variation, speed and bend for every letter of a word/sentence. TextToSpeech can be controlled via incomming MIDI Notes in several modes. Every letter can be replaced by variations in Realtime. German language is pre-configured.

All "Synth" and "TextToSpeech" Patches can be stored up to 8 external EEPROMs on a bankstick.


===== Hardware =====

1x Core board + PIC18F452 for a modificated version or next release of [[speakjet_application_software_v_0.1]] from audiocommander & rio\\
At time, only the "k2mod" application will work with K64 features! New K2 releases planned by AC, which support that features.

1x SpeakJet board for the [[midibox_speakjet]] application from audiocommander with TK's [[http://www.ucapps.de/mbhp_iic_speakjet.html|SpeakJet firmware 1.0]] on a PIC16F88.

1x Core board + PIC18F452 for K64 application to have full controll to KII via MIDI, and also to use as external midikeyboard too!

1x C64 PSU to connected Core boards with 5V DC, e.g. here: {{http://www.ucapps.de/mbhp/mbhp_4xsid_c64_psu_optimized.pdf}}

1x midiboxkb board [[midiboxkb_-_using_a_c64_keyboard_as_input]] from jambonbill

1x C64 Case + functional C64 Keyboard (older or newer case, keyboard are possible)

1x 2x40 LCD for K64 Controller application (for Key control and TextToSpeech (32 characters in 1 Patch))

1x 2x20 LCD for K2 application

2x MIDI-IN (on K64-Core for trigger text; on K2-Core for receiving SpeakJet commands) 

1x MIDI-OUT (on K64-Core for external use (you can link it to K2-Core, but also route it through SEQV3)

{{speakjet_k64:speakjet2s.jpg}}
   
{{speakjet_k64:speakjet3s.jpg}}
{{speakjet_k64:speakjet4s.jpg}}

{{speakjet_k64:k64-hardware.gif?800x*}}


To make it look impressive, the final version can be fit out with white keys for half notes:

{{speakjet_k64:blackwhite.gif}}




===== Software =====

K64 Application Software version 1.1d for Core Module (K2mod for 2.Core Module is included):

__last release:__

[[http://powerhuhn.net/rio/SpeakJet/K64_v11d.zip|K64_v11d.zip]]

Check out, which type and how many EEPROMs you've connected. For every setup, i've compiled several hex-files for use. Upload MIOS + suitable K64 software (e.g. k64_8x32k.hex) on first module (where the C64 keyboard module from bill is connected).

After that, upload MIOS + included k2mod software (k2mod.hex) on the second module, where the speakjet board from AC is connected. For upload use MIOS STUDIO. Connnect the MIDI Ports like in Hardware description.
 


__older versions:__

[[http://powerhuhn.net/rio/SpeakJet/K64_v11c.zip|K64_v11c.zip]]

[[http://powerhuhn.net/rio/SpeakJet/K64_v11.zip|K64_v11.zip]]

[[http://powerhuhn.net/rio/SpeakJet/K64_v1.zip|K64_v1.zip]]



===== Warning / Notes =====

Use the hardware build up at your own risk!
Use the applications at your own risk!
I will not be liable for any damages at hardware or software.

At current time only the **included K2mod application** will work with K64.
It's based on the v0.1 of Audiocommander's K2 with some changes in functions and advanced functionalities.

For both applications PIC18F452 is sufficient.
[[http://www.ucapps.de/mbhp_iic_speakjet.html|SpeakJet firmware 1.0]] should be sufficient. I've only checked and tested my own build-up about a half year and no problems occurs. 
//AudioCommander noticed some errors with his build-up, so he have done some changes in released 1.2 firmware.//

Please read all notes about PSU, PCB Boards (CORE, SpeakJet / K2, C64 Keyb ...) at MIDIBOX WIKI and Ucapps.de in detail and read the **changelog** of K64 and K2mod application.

See links above.


===== Licence =====

**MIDIbox SpeakJet Modul K64**
version: 1.1d (german)
Copyright 2007 Sebastian Kühn (Rio)

some parts belongs to:

**a) Sample Matrix:**
Copyright 2006 Thorsten Klose
Licensed for personal non-commercial use only.
All other rights reserved.

**b) K2**
Copyright 2007 Audiocommander

**c) C64 KeyB**
Copyright 2007 Bill

Released under GNU General Public License
http://www.gnu.org/licenses/gpl.html

This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation

YOU ARE ALLOWED TO COPY AND CHANGE
BUT YOU MUST RELEASE THE SOURCE TOO (UNDER GNU GPL) IF YOU RELEASE YOUR PRODUCT
YOU ARE NOT ALLOWED NOT USE IT WITHIN PROPRIETARY CLOSED-SOURCE PROJECTS


===== Doku / Tutorial =====


==== The main screen - the midi keyboard ====

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main1.gif}}

The main screen displays the adjustable midi settings to use the C64 keyboard as a splitted midikeyboard with UPPER and LOWER Keyfield. Maybe you can use it to play or control external device (SEQ, Syntheziser, K2) seperatly. I'm often using the LOWER keyfield to transpose SEQ tracks and SpeakJet pitch at same time by SEQ's internal router. Maybe the UPPER keyfield can be used  for playing notes directly.

=== Playing notes ===

In the middle of screen the current playing midi notes are displayed. Notice that only 3 keys are possible at the same time. That's a restriction of the keyboard matrix, because pushing a 3th key in same row/col will short-circuited some other keys in matrix. Some workarounds are implemented to solve that problem as good a possible.

=== Setup keyfields ===

On the right side of screen the adjustable channel- and transpose-values for UPPER and LOWER keyfield are shown. Ch1 (for LOWER keyfield) can be changed with CRSR keys up down, Ch2 (for UPPER keyfield) is variable by + and -. Pushing F1 and F7 will change the transpose value (Tr1). For the UPPER Keyfield Tr2 is adjustable in 2 ways: Pushing SHIFT_R + F1 and SHIFT_R + F7 or pushing simply the SPACE key. A short touch of the space button transposes Tr2 up, a longer touch transposes Tr2 down. All Parameters will be stored internal.

=== CCs and Values ===

On the right side of screen the adjustable CC and CC Values are shown. The pointer char ">" in middle of screen (in front of Ch1) presents the current Channel for a choosen CCs. SHIFT_R + = switches the CC pointer between the 2 keyfields. CCs are adjustable with F3 and F5. The Keys COMMODORE and SHIFT_L presents the datawheel of K64. CC Values are sended out by moving CC Value up and down with that keys. = - Key sets values back to 0.

=== Triangle LFO ===

There is an integrated LFO option to automate some functions of the datawheel. The LFO option changes the CC Values in a specific interval up and down. Close to CC Value area (VAL), there are 2 marker adjustable. The Startpointer ">" on the left and Endpointer "<" on the right side. The Start marker is adjustable by pushing CLR/HOME key - the end marker by INST/DEL. Changes adjust the border for triangle LFO. LIRE - Key resets default marker position (0..127).

To Start the LFO press RUN/STOP. To Stop the LFO press RUN/STOP again. You can influence the flow by controlling CC Values manually, changing end- and start-position and setup Speed Value.

=== Speed option ===

The speed value SP presents the speed of changing CC Values which are controlled by datawheel or by LFO. Manual changes are constantly double fast as LFO. Pushing SHIFT_R + F3 or SHIFT_R + F5 will change the speed value. Notice, if the speed value is 0 the LFO will be frozen.

=== SEQV3 Record ===

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main3.gif}}

People, which own's a MIDIBox SEQV3 are able to use this special feature to record or to modify parameters as easy as possible from K64. Every step of a track can be controlled by Cursorkeys, toggling notes (Space Key) or recording notes from Keyfield. 

The Record Mode is available by pushing SHIFT_R + RETURN in mainscreen.
**Note!! Only versions higher than SEQ V3.2a will work correct.** 
All you have to do: Set up the same midichannel for SEQV3 midi-in and K64 (lower) keyfield.

Tracks can be copied by pushing SHIFT_R + UPARROW (Copy) and pasted by pushing SHIFT_R + @ (Paste). Pushing first time will activate the COPY / PASTE MODE (so you can use the rotary encoder of your SEQ to select an area); Pushing same keys a second time again - the selected area will be copied or pasted. Try it out. 

For choosing another track you have to push SHIFT_R + F1 / SHIFT_R + F7 for step tracks up or down. If you want to choose one of the 3 layer push SHIFT_R + F3 / SHIFT_R + F5. 

Keys like + or - will activate the MOVE MODE and SCROLL MODE. 

CLR/HOME will clear a track; INST/DEL will undo a command. 

It's possible to start and stop the sequencer with "]" and "=". 

RETURN will toggle between REALTIME and STEP feature of record mode. I've used the STEP MODE for recording a note at current position, while a track is playing. So now it's possible to listen up the track.

LIRE Key toggles between the AutoStart feature of record mode.

=== Available SpeakJet areas ===

If you've installed the K2 and SpeakJet-Board and if you want to control the SpeakJet for Text to Speech, you can change the main screen to TTS screen by pushing CTRL. If you press CTRL again, you will be back in main screen. 

If you want to change SpeakJet CCs instead all CCs, press <-.

If you push SHIFT_R + <- you will change to Synth Mode of SpeakJet. Push <- again, you will turn back to main screen.

=== SpeakJet K2 Parameters ===

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main2.gif}}

SpeakJet Parameters are changing pitch (OS1...5) of OSC 1,2,3,4,5; changing Volumen (VO1...5) of OSC 1,2,3,4,5; changing frequency of Envelope (ENV); changing volumen of Distortion for OSC 4 and 5 (DIS); changing global Speech Speed (SPD); changing global Speech Bend (BND); changing parameter for Jaw (JAW) and Tonque (TON).

Remember SpeakJet control is only available, if K64 modul is linked to K2 modul via MIDI.

=== SpeakJet Configurations ===

The SpeakJet can be configured with following Keys:

**SHIFT_R + E**	toggle Envelope Type (saw, sin, tri, sqr)

Toggle Envelope Type will only be shown on K2 Display. Parameter E changes to several waveforms. 

**SHIFT_R + S**	toggle Envelope State (0,1,2,3)

Toggle Envelope State will only be shown on K2 Display. Parameter T changes to 0,1,2,3.

Bit 1: activates Envelope for OSC 123

Bit 2: activates Envelope for OSC 45

So T = 3 will link all OSCs to the Envelope.

**SHIFT_R + ?**	toggle Envelope Slide (ON, OFF, REL)

This is a special K2mod option. Toggle Envelope Slide will be shown as short Text on K2mod:

ENVELOPE SLIDE ON	- Envelope Frequency will be changed in combination with OSC Frequency (0 ... 127)

ENVELOPE SLIDE OFF	- Envelope Frequency will be handled seperatly (0 ... 127)

ENVELOPE SLIDE REL	- Envelope Frequency will be changed relative to OSC Frequency (-64 ... 63)

**SHIFT_R + O**	toggle OSC for OSCSynthese (have to be activated)

Toggle OSC Waveform for OSCSynthese. If OSCSynthese is active, OSCSynthese Waveforms will be shown. Parameter O changes to several waveforms. 

If something go wrong, or something isn't adjusted anymore, it's possible to reset the speakjet with key combination SHIFT_R + CLR/HOME.

Some more function for configuration the SpeakJet are described on keymap.





==== How to create TextToSpeech Patches? ====

First we changed from mainscreen to TTS Screen by pushing CTRL. Now the first patch will be shown. If nothing is stored before, only a blinking cursor will be displayed. Now you can write a word or a sentence. Notice that the application is preconfigurated for german language (because german words are easier pronounceable from text as any other language. E.g. english are very different between written letters and spoken text - many algorithmics have to be implemented to meet all requirements for a TTS).

Ok, we will try to write a german sentence:

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_tts1.gif}}

[[http://powerhuhn.net/rio/SpeakJet/Tutorial/01_speech.mp3|Der Weltraum example]]

The upper line is for writing input (max. 32 characters for patches are allowed). A space character will insert a pause. The cursor can be moved by CRSR Keys to a special position in word. On the left side you can choose the current bankstick (SHIFT_R + F1 /  SHIFT_R + F7) and the current patchnumber (+ / -). The lower line represents different configurations for every letter.

=== Text modifications ===

LIRE 			- delete

INST/DEL 		- backspace

SHIFT_R + INST/DEL 	- insert

CLR/HOME		- Pos1

SHIFT_R + CLR/HOME 	- Clear


RETURN key or any MIDI-IN Note on Channel 9 will send out the phrase. 

=== Speech modifications ===

Ok, we should fine tune pauses in sentence. Go to the space positions and write down a number or using F3 / F5 keys. Higher values will insert longer pauses. Try following:

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_tts2.gif}}

Ok, we should fine tune variations of letters. We change the letter "E" in "WELTRAUM" and the first "E" in "WEITEN". Use F3 / F5 to change numbers below letters and listen to the result:  

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_tts3.gif}}

[[http://powerhuhn.net/rio/SpeakJet/Tutorial/02_speech.mp3|Der Weltraum with pauses and variations]]

Every letter can be changed by variations. The number of variations is different for every letter. Try to find out the best combinations for your words.

Now we want to do changes in **Speed** and **Bend**. Pushing F1 / F7 will change "VAL" to submenu "SPD" and "BND". Try to added following changes in both and listen to the results by pushing RETURN:

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_tts4.gif}}

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_tts5.gif}}

SPD and BND settings will change global settings for SpeakJet. So next speakjet events (e.g. next spoken letter) will use the last values for Speed and Bend. The normal value for Speed is 8 and for Bend 4.

=== Storing Patches ===

At least you are able to store the patch on current patchnumber by pushing SHIFT_R + RETURN. A Message will be shown. Every 32K Bankstick can store 200 Patches; 64K Bankstick can store 400 Patches. 

If you want to copy the text phrases to another position:
Hold down SHIFT_R and choose the new patchnumber by + / - keys. Notice, old patches will be overwritten.

=== Using Textphrases ===

There are several modes to controll Textphrases:

1. Pushing RETURN in TTS Screen and Mainscreen plays the actual patch

2. Incoming MIDI Notes can used for playing phrase in several modes:

	for 32K Bankstick you can use patches:

	CHANNEL 1:	C-1, C#1...		Patch 1,2...		
	CHANNEL 2:	C-1, C#1...		Patch 51,52...		
	CHANNEL 3:	C-1, C#1...		Patch 101,102...		
	CHANNEL 4:	C-1, C#1...		Patch 151,152...		

	for 64K Bankstick you can use additional patches:

	CHANNEL 5:	C-1, C#1...		Patch 201,202...		
	CHANNEL 6:	C-1, C#1...		Patch 251,252...		
	CHANNEL 7:	C-1, C#1...		Patch 301,302...		
	CHANNEL 8:	C-1, C#1...		Patch 351,352...		

Text patches will be played as in describtion above in mainscreen. So you can trigger whole sentences with incoming midinotes from a SEQ. Let him sing while sending additional notes to CHANNEL 4 of K2. 

If you are in TTS screen, only the fit note will play the current patch. E.g. TTS screen displays PatchNr 3 then only D-1 will trigger the text phrase. All other notes will be ignored.

	CHANNEL 9:	Plays actual text patch
	CHANNEL 10:	Plays actual text patch with changing BEND
			C-1, C#1...		BEND 0,1,2,3,4,5...127


==== How to create Synth Patches? ====

We go back to mainscreen and change to synth menu by pushing SHIFT_R + <-.

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_xsynth1.gif}}

From Left to Right following parameters are shown: K2 CC parameters, Speed for CC changes (e.g. LFO), Patchnumber and Patchname, OSCs of SpeakJet 12345, Banknumber and Transpose. The synth keyfield isn't splitted in 2 areas, so the whole keyboard can be used to playing notes. Banknumber can be choosen by pushing SHIFT_R + F1 / SHIFT_R + F7. Patches can be changed by pushing + / -. Transpose is adjustable by pushing F1 / F7. Controlling K2 CC Parameters and LFO are possible too.

The 5 black bars represents the connected OSCs for mixture to play an accord. In the screenshot above all 5 bars are active. You are able to increment or decrease it by pushing CRSR Keys. Higher Values as 5 Bars will change to "SYN" and next to "PL3" mode.

There are 2 modes: "Play" and "Hold" mode. You can switch between the modes by pushing SPACE. If you are switched to "Hold" mode then the bars will change to volume slidebars.

=== Tune an accord ===

Go into "EDIT" mode by pushing RETURN. A blinking Cursor will be shown. Set up the right transpose and step with CRSR keys back to the first OSC and press the key of C-2 (key "Q"). The pitch of C-2 is now assigned to first OSC. The first OSC should be assigned to a C note to have a correct starting point to the keyfield. 

Now we step to the second OSC with CRSR right and we press the key of E-2 (key "E"). The pitch of E-2 is now assigned to second OSC. We can tune the third OSC and we press the key of G-2 (key "T"). For the fourth and fifth OSC we choose C-3 (key "I") and E-3 (key "P"). We are leaving the edit mode by pushing SPACE.
Now you can play around with that accord on keyfield. 

[[http://powerhuhn.net/rio/SpeakJet/Tutorial/03_synth.mp3|A tuned accord]]

Sounds nice? No? Then we can activate the internal envelope of SpeakJet by pushing SHIFT_R + S. The values for T parameter in K2mod screen switches from 0  to 1. We press SHIFT_R + S again, til T = 3 is shown. 

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/k2main1.gif}}

Now all OSCs are connected to Envelope frequency. Next, we change the ENVELOPE Waveform by pushing SHIFT_R + E til "SIN"-sign is shown. 

Now we change the ENVELOPE SLIDE off by pushing SHIFT_R + ? til ENVELOPE SLIDE OFF is shown. Now we choose the ENV Parameter (F3 / F5) and we change  the envelope frequency by decrementing CC Values (SHIFT_L) til value "6" is shown on left side of synth screen.

It should sound like this:

[[http://powerhuhn.net/rio/SpeakJet/Tutorial/04_synth.mp3|An enveloped tuned accord]]

You can add the LFO (by setting up marks) and speed values too. All these parameters will be stored together in one patch.

=== HOLD mode ===

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_xsynth2.gif}}

The HOLD mode will be activated, by pushing SPACE. All black bars are only small lines by default. They are switched now into volume slidebars. Volume level is 0 for all 5 OSCs. Pushing SHIFT_R + RETURN activates EDIT MODE. You can tune the OSCs like in describtion above (tune an accord) and you can adjust the volume for every OSC by pushing SHIFT_L or COMMODORE up and down. 

[[http://powerhuhn.net/rio/SpeakJet/Tutorial/05_synth.mp3|An example of HOLD mode]]

The advantage of HOLD mode is the less latency and seperate volume control of every single OSC. HOLD mode can be switched ON / OFF by pushing SPACE again. Together with K2 CC Parameter (e.g. VO3..5) some nice effects are possible:

[[http://powerhuhn.net/rio/SpeakJet/Tutorial/06_synth.mp3|An example of using LFO with K2 CC Parameters "VO3..VO5" with fix Envelope]]

Sound example for same patch changing OS1 together with ENVELOPE SLIDE ON:

[[http://powerhuhn.net/rio/SpeakJet/Tutorial/07_synth.mp3|An example of using LFO with OS1 Parameter with active Envelope Slide]]

=== Storing Patches ===

Patchnames can be written by pushing CTRL. CTRL Key again abort the patchname menu. Patchnumber can be choose by pushing + and -. So you can copy patches from one position to another. Patches will be stored with RETURN. Notice that patches on a new position will be overwritten. 32K Bankstick can store 111, a 64K Bankstick 223 Patchnames for every bank.

=== SYN mode ===

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_xsynth3.gif}}

CRSR right in Play mode will increment the number of mix OSCs. After 5 black bars are reached, the next step switches to SYN mode. That's a special OSC Synthese implemented by Audiocommander.

=== PL3 mode ===

{{http://powerhuhn.net/rio/SpeakJet/Tutorial/main_xsynth4.gif}}

The next step CRSR right after SYN mode activates the PL3 mode. That's a polyphon mode for first 3 OSCs instead an whole mixture of all OSCs.

[[http://powerhuhn.net/rio/SpeakJet/Tutorial/08_synth.mp3|An example of playing polyphon keys in PL3 mode]]




===== Keys =====

A visualisation of several main areas:

{{http://powerhuhn.net/rio/SpeakJet/Images/keymap.gif}}

---------------- Keyboard Mode ------------------------------------------------------------------------------------------

		<--		select K II CC Mode
		SHIFT_R + <--	select Synth Mode
		CTRL		select Text To Speech Mode
		
		Z..?		note Ch1
		S..[		halfnote Ch1		

		Q..UPARROW	note Ch2
		2..0		halfnote Ch2

		RETURN		plays current speech text
		SHIFT_R + RET.	activates SEQV3 Record mode
		SHIFT_R + CLR	resets SpeakJet

		SPACE		short - transpose up for Ch2
				long - transpose down for Ch2

		COMMODORE	CC Value down	
		SHIFT_L		CC Value up

		RUN/STOP	Start LFO / Stop LFO
		CLR/HOME	Set LFO START mark
		INST/DEL	Set LFO END mark
		LIRE		Reset LFO marks
		
		+		Ch2 up
		-		Ch2 down

		CRSR_LR		Ch1 up
		CRSR_UD		Ch1 down

		F1		Transpose1 up	
		F7		Transpose1 down
		SHIFT_R + F1	Transpose2 up	
		SHIFT_R + F7	Transpose2 down

		F3		CC up		(K II CC up)
		F5		CC down		(K II CC down)
				

		SHIFT_R + F3	Speed up	
		SHIFT_R + F5	Speed down (Speed 0 - LFO will hold)

		SHIFT_R + =	Select CC outgoing Channel	


		SPEAKJET CONTROL:
		-----------------------------------
		SHIFT_R + E	toggle Envelope Type (saw, sin, tri, sqr)	
		SHIFT_R + S	toggle Envelope State (0,1,2,3)
		SHIFT_R + ?	toggle Envelope Slide (ON, OFF, REL)
		SHIFT_R + O	toggle OSC for OSCSynthese (have to be activated)
		SHIFT_R + M	resets Mastervolume = 127

		SHIFT_R + @	Harmonizer listen key OFF
		SHIFT_R + *	Harmonizer listen key ON
		SHIFT_R + UPAR.	Harmonizer scale (0,1,2)


---------------- Record Mode ---------------------------------------------------------------------------------------------

		SHIFT_R + RET.	deactivates SEQV3 Record mode

		CRSR_LR		SEQ Step Right
		CRSR_UD		SEQ Step Left

		SHIFT_R + F1	SEQ Track up	
		SHIFT_R + F7	SEQ Track down		

		]		SEQ PLAY
		=		SEQ STOP

		RETURN		SEQ RECORD / STEP MODE
		LIRE		SEQ ASTART ON / OFF

		SHIFT + UPARR.	COPY MODE ON (pushing again will COPY from selected area
		SHIFT + @	PASTE MODE ON (pushing again will PASTE to selected area

		+		MOVE MODE ON
		-		SCROLL MODE ON

		CLR/HOME	SEQ CLEAR Track
		INST/DEL	SEQ UNDO

		SPACE		TOGGLE NOTE ON/OFF

		(all keys will record defined note at current step position)

---------------- Synth Mode ----------------------------------------------------------------------------------------------

		<--		select Keyboard Mode
		SHIFT_R + <--	select Keyboard Mode

		CTRL		Savemenu: Edit Textname	LETTERS:	Write Patchname
							SPACE:		Space
							CRSR LR/UP:	Scroll position
							RETURN:		Save
							CTRL:		Back
		
		Z..UPARROW	note
		S..0		halfnote		
				
		SHIFT_R + CLR	resets SpeakJet

		SPACE		toggle PLAY / HOLD mode

				PLAY MODE:
				---------------------

					RETURN		toggle EDIT MODE		
					CRSR_LR		add OSC -> SYN -> PL3
					CRSR_UD		sub OSC

					EDIT MODE:
					---------------------

					Z..UPARROW	tune OSC note
					S..0		tune OSC halfnote		
					(dependent from 1. OSC (should be tune first)


				HOLD MODE:
				---------------------

					SHIFT_R + RET.	toggle EDIT MODE		

					EDIT MODE:
					---------------------

					Z..UPARROW	tune OSC note
					S..0		tune OSC halfnote		
							(dependent from 1. OSC (should be tuned first))
					CRSR_LR		toggle OSC up
					CRSR_UD		toggle OSC down
					COMMODORE	VOLUME down for selected OSC	
					SHIFT_L		VOLUME up for selected OSC


		COMMODORE	CC Value down	
		SHIFT_L		CC Value up

		RUN/STOP	Start LFO / Stop LFO
		CLR/HOME	Set LFO START mark
		INST/DEL	Set LFO END mark
		LIRE		Reset LFO marks
		
		+		Synth Patch up
		-		Synth Patch down

		F1		Transpose up	
		F7		Transpose down

		SHIFT_R + F1	BANK up	
		SHIFT_R + F7	BANK down

		F3		K II CC up
		F5		K II CC down

		SHIFT_R + F3	Speed up	
		SHIFT_R + F5	Speed down (Speed 0 - LFO will hold)

		SHIFT_R + =	Select CC outgoing Channel	


		SPEAKJET CONTROL:
		-----------------------------------
		SHIFT_R + E	toggle Envelope Type (saw, sin, tri, sqr)	
		SHIFT_R + S	toggle Envelope State (0,1,2,3)
		SHIFT_R + ?	toggle Envelope Slide (ON, OFF, REL)
		SHIFT_R + O	toggle OSC for OSCSynthese (have to be activated)
		SHIFT_R + M	resets Mastervolume = 127

		SHIFT_R + @	Harmonizer listen key OFF
		SHIFT_R + *	Harmonizer listen key ON
		SHIFT_R + UPAR.	Harmonizer scale (0,1,2)


---------------- Text to Speech Mode -------------------------------------------------------------------------------
		CTRL		select Keyboard Mode
		
		A..Z		Write Letters
		SPACE		Write Pause (Space)
		RETURN		play/send current speech text

		CLR/HOME	Pos1
		SHIFT_R + CLR	Clear Text

		INST/DEL	Backspace
		SHIFT_R + INST	Insert Space

		LIRE		Delete Letter
		
		+		Text Patch up
		-		Text Patch down

		SHIFT_R + '+'	Scroll Text Pos up + Copy Patch on shift key up
		SHIFT_R + '-'	Scroll Text Pos down + Copy Patch on shift key up

		F1		MODE up		(VAL, SPD, BND)	
		F7		MODE down	(VAL, SPD, BND)

		SHIFT_R + F1	BANK up	
		SHIFT_R + F7	BANK down

		0..9		Set Value for Letter
		F3		MODE value up	(0..9)	0 - not displayed
		F5		MODE value down	(0..9)


						VAL:
						-------
						0	- Standard LETTER
						1..x	- LETTER Variations

						SPACE VAL (PAUSE)
						--------------------------------
						0..9	- SHORT...LONG

						SPEED:
						------------
						1..9	- SLOW..FAST
						0	- IGNORE

						BEND:
						------------
						1..9	- LOW..BRIGHT
						0	- IGNORE




===== additional MIDI-Implementation-Chart ===== 

additional CCs in K2 MOD:

^ Function  ^ #define  ^ default assingment  ^ Channel Mode  ^ Description  ^
^ Synth  ^ ^ ^ ^ ^ ^
| Envelope State | SJCC_ENV_STATE | CC 52 | Omni | Toggle EnvState: 0,1,2,3 (OSC: 0,123,45,12345)|
| Envelope Slide Mode| SJCC_ENV_SLIDE | CC 53 | Omni | Toggle Slide Mode: ON, OFF, REL (relative)|
| Oscilator Mode | SJCC_OSC_MOD | CC 54 | Omni | Toggle OSC Mode: add 1,2,3,4,5 OSC, 6 - SYN|
| Volume HOLD Mode | SJCC_VOL_HOLD | CC 55 | Omni | Slides Volume HOLD (ON/OFF) |
| Envelope State | SJCC_ENV_SSTATE | CC 62 | Omni | Slides EnvState: 0,1,2,3 (OSC: 0,123,45,12345)|
| Envelope Slide | SJCC_ENV_SSLIDE | CC 63 | Omni | Slides Slide Mode: ON, OFF, REL (relative)|
| Oscilator Mode | SJCC_OSC_SMOD | CC 64 | Omni | Slides OSC Mode: add 1,2,3,4,5 OSC, 6 - SYN|
^ == SYSTEM REALTIME MESSAGES ==  ^ ^ ^ ^ ^ ^ 
| MSA Stop | MIDI_CC_ALL_SOUND_OFF | CC 120| - | STOP MSA / SPEECH |

   o K II MODE CCs:

	OS1		101
	OS2		102
	OS3		103
	OS4		104
	OS5		105
	VO1		111
	VO2		112
	VO3		113
	VO4		114
	VO5		115
	ENV		106
	DIS		118
	SPD		44
	BND		43
	JAW		40
	TON		41

	
   o internal sended CCs:

	HLISTEN_ON/OFF	37
	H_SCALE		38
	MOUTH_STRESS	43
	MOUTH_SPEED	44
	PAUSE		45
	OSC_WAVESHAPE	50	
	VOL_HOLD	55
	SLIDE_ENVSTATE	62
	SLIDE_ENVSLIDE	63
	SLIDE_OSCMODE	64
	MASTERVOL_RST	108
	ENVTYPE		116
	MSA STOP	120
	RESET SJ	121

===== Text To Speech examples =====

This engine is preconfigured for the german language (letter/vocals). Every letter can be changed in parameter for similar phonemes, speed, bend. It's easy to use the input textfield routine. The speech routine is triggered by incoming midi signals. The speech isn't played from phrase storage, it will be generated in realtime instead.

Here is an example for the english word: "Detroit" with several external effects at the second repeat.
In the last part from 0:50 shows the K64 in use with MBSEQ and routed signals to MBSID and Sampler.

[[http://powerhuhn.net/rio/SpeakJet/Speech/detroit.mp3|detroit.mp3]]


===== Synth examples =====

The SpeakJet syntheziser mode allowes to have access to 5 channels and all parameter of speakjet, so you can play with pitch and volume for every channel. It's possible to change settings for the internal Envelope independend from played OSCs. Parameter like distortion can be configured. Additional changes in original K-II code were necessary.

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod1.mp3|K2mod1.mp3]]

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod2.mp3|K2mod2.mp3]]

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod3.mp3|K2mod3.mp3]]

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod4.mp3|K2mod4.mp3]]

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod5.mp3|K2mod5.mp3]]

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod6.mp3|K2mod6.mp3]]

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod7.mp3|K2mod7.mp3]]

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod8.mp3|K2mod8.mp3]]

[[http://powerhuhn.net/rio/SpeakJet/Synth/k2mod9.mp3|K2mod9.mp3]]

----

--- //[[http://www.rattenrudel.de|RIO]] 2007/09/02//